# 定义变量
BINARY_NAME ?= default_app_name #如果BINARY_NAME没有在命令行中指定，则使用default_app_name为默认值

GOBUILD=go build -o $(BINARY_NAME) ./cmd
GOCLEAN=go clean
GORUN=go run ./cmd/...
GOGET=go get
CMD=./$(BINARY_NAME)

# 默认目标
all: build

# 构建二进制文件
build:
	$(GOBUILD)


# 清理构建文件
clean:
	$(GOCLEAN)
	rm -f $(BINARY_NAME)

# 依赖获取，如果有外部依赖可以使用
#./...: 这是go get命令的参数，指示go get搜索当前目录（以及所有子目录）中的所有Go文件，并分析它们的导入声明
deps:
	$(GOGET) ./...

# 根据需要执行的特定服务，可以添加更多的运行目标
run-execlTohostJson:
	$(CMD) -parseHost=true

run-execToServiceJson:
	$(CMD) -parseService=true

run-execToServiceURLJson:
	$(CMD) -parseServiceURL=true

run-execToAllJson:
	$(CMD) 	-parseHost=true -parseService=true -parseServiceURL=true

run-host:
	$(CMD) -registerHost=true

run-icmp:
	$(CMD) -registerIcmp=true

run-telegraf:
	$(CMD) -registerTelegraf=true

run-interface:
	$(CMD) -registerInterface=true

run-service:
	$(CMD) -registerService=true

run-registerServices:
	$(CMD) -registerServices=true

run-all:
	$(CMD) -parseHost=true -parseService=true -parseServiceURL=true -registerServices=true